package xin.marcher.module.construction.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xin.marcher.module.common.enums.ProductResultEnum;
import xin.marcher.module.construction.domain.entity.*;

import java.util.List;
import java.util.Set;

/**
 *
 */
@Mapper
public interface ItemInfoMapper extends BaseMapper<ItemInfoDO> {


    /**
     * 根据itemId查询item信息
     *
     * @param itemId
     * @return xin.marcher.module.construction.domain.dto.ItemInfoDTO
     */
    ItemInfoDO selectByItemId(@Param("itemId") String itemId);

    /**
     * 查询商品的联合信息
     *
     * @param itemId
     * @return
     */
    List<ProductDetailDO> queryProductInfoList(@Param("itemId") String itemId);

    /**
     * 批量查询item信息
     *
     * @param itemIdSet
     * @param customResult
     * @return java.util.List<xin.marcher.module.construction.domain.dto.ItemDetailDTO>
     */
    List<ItemDetailDO> selectItemDetailList(@Param("itemIdSet") Set<String> itemIdSet,
                                            @Param("customResult") List<ProductResultEnum> customResult);

    /**
     * 根据itemId查询item的销售信息
     *
     * @param itemId
     * @return java.util.List<xin.marcher.module.construction.domain.dto.SkuInfoDTO>
     */
    List<SkuInfoDO> selectItemSaleByItemId(@Param("itemId") String itemId);

    /**
     * 根据itemId查询item的推广信息
     *
     * @param itemId
     * @return xin.marcher.module.construction.domain.dto.ItemPopularizeDTO
     */
    ItemPopularizeDO selectItemPopularizeByItemId(String itemId);

}